#!/usr/bin/python
# -*- coding: utf-8 -*-
#========================================================================
# Author: YSLin
# Email: 
# File Name: module/importer.py
# Description: 
#   
# Edit History: 
#   2010-12-11    File created.
#========================================================================

def printYellow(msg):
    print "\033[1;33m" + msg + "\033[0m"

#import mod所有的function還有執行他的code
import mod
mod.modfun()

#只有把mod中的modfun戴入,並且不需要module name就可以執行
from mod import modfun
modfun()

#列出預設讀入的module
import sys
#加入自己的module的path
sys.path.append('/ufs/guido/lib/python')
# 預設找尋module路徑順序
printYellow("sys.path")
print sys.path

#內建的 dir() 函式主要是用來找出某個module裡面所定義的所有名稱。其傳回值是一串經過排序了的字串list
printYellow("mod")
print dir(mod)
printYellow("sys")
print dir(sys)


printYellow("dir()")
print dir()
#載入所有sys的function
from sys import *
#沒有傳入參數的話， dir() 會列出所有你目前已經定義變數，函式，以及module
printYellow("after from sys import *, dir()")
print dir()

#dir() 並沒有列出所有內建的函式及變數的名稱。如果你真想要列出來的話，它們都定義在 __builtin__ 這個標準module裡面
import __builtin__
printYellow("__builtin__")
print dir(__builtin__)


#package用法,其中每個目錄都要有 __init__.py為了讓Python treat the directories as containing packages

import Package.Hello.echo
Package.Hello.echo.foo()

# import 只會匯入一次, 不會再顯示"__init__.py"和module執行的結果
import Package.Hello.echo
import Package.Hello.echo

# reload 重新執行並且覆寫現有空間名稱
reload(Package.Hello.echo)
